草庐IT

Java 8 闭包和类型识别

全部标签

允许具有多种数据类型的 Javascript 参数 : good practice or not?

我已经多次看到-特别是在jQuery中-一个函数可以有多种有效数据类型,比方说字符串或函数。此外,在我自己的代码中,有时我的函数可以采用一个或多个值。所以我可以调用函数:myFunc("arg");ormyFunc(["arg1","arg2",...]);这看起来更灵活,打字也更方便,但这真的是好事吗?因为另一方面,没有明确说明函数是什么类型,据我所知,JIT编译器无法高效工作。并且通常必须进行某种类型的类型强制转换,这会带来额外的性能损失。那么,即使数组中只有一个对象,总是写:myFunc(["arg"])会更好吗?你对此有何看法? 最佳答案

javascript - 识别哪个选项卡发出了请求

这个问题可能没有答案。但是,我想我会试一试。我写了一个很棒的单页应用程序。当应用程序启动时,打开的选项卡会向服务器“注册”自身,服务器会将其存储为“事件”选项卡。如果用户A更改工作区中的XYZ,则任何用户在该工作区上打开的每个选项卡都会收到一条通知,告知XYZ已更改。这会触发客户端重新加载,这将神奇地更新。目前,我正在通过投票来做到这一点。但是,当一切正常时,我可以使用WS或Socket.io之类的东西来使事情变得更快。问题:每个选项卡都会收到通知。甚至是最初引发它的选项卡!(结果,已经更新的屏幕得到更新)我不知何故需要服务器知道发出请求的选项卡的选项卡ID。请记住,用户可能打开了5个

javascript - 使用 $http 发送 JSON 导致 Angular 发送文本/纯内容类型

我只想将以下JSONobjects发送到我的API后端:{"username":"alex","password":"password"}所以我使用Angular$http编写了以下函数:$http({method:'POST',url:'/api/user/auth/',data:'{"username":"alex","password":"alex"}',}).success(function(data,status,headers,config){//DoStuff}).error(function(data,status,headers,config){//DoStuff})

javascript - 使用 == 而不是 === 时的类型转换

这个问题在这里已经有了答案:Whichequalsoperator(==vs===)shouldbeusedinJavaScriptcomparisons?(48个回答)关闭8年前。我通常不喜欢使用==,但今天我只是试验了以下包含==的代码,结果让我有点困惑。有人可以解释发生了什么吗?所有这些都是虚假值:'',0,false,undefined,null假设我做了:if(undefined==null){alert('a');}else{alert('b');}下面的陈述为真:null==undefined0==''false==''0==false但为什么下面的代码返回false?u

javascript - 为什么 Closure 在使用 function.apply 时不对参数进行类型检查?

见下文/***@param{string}a*@param{string}b*/varf=function(a,b){//...}/***@param{string}a*@param{boolean}c*/varh=function(a,c){f.apply(this,arguments);//nocompileerrorf.apply(this,[a,c]);//nocompileerrorf.call(this,a,c);//compileerror:doesnotmatchformalparameter}为什么Closure只在使用call而不是apply时报错?有没有一种方法可

javascript - Nodejs 闭包变量未在模块中更新

我需要一些帮助来理解NodeJ。我显然缺少一些基本的东西。我有一个类似于下面的模块,使用基本的揭示模块模式......varsomeArray=[];varpublicApi={someArray:someArray,someFunction:someFunction};functionsomeFunction(){someArray=['blue','green'];}module.exports=publicApi;当我使用这个模块时,当我调用someFunction时someArray没有改变...varmyModule=require('myModule');myModule.

javascript - 仅在闭包中定义的模拟/ stub 对象

首先,为了测试我的库,我使用了Mocha和Chai,但有时我可能也需要Sinon。这是图书馆:importServicefrom'service';//athird-partymoduleoutofmycontrolconstservice=Service(...);classMyLib{...uses`service`inabunchofdifferentways......service.put(foo)......service.get(bar)...}exportdefaultMyLib;这基本上是测试文件:importMyLibfrom'../my-lib.js';descr

javascript - JavaScript 中的递归闭包

functionbuildList(list){vari=0;varfirst=function(){console.log("in")console.log(i);}varSecond=function(){console.log("out")first();}returnSecond;}vara=buildList([1,2,3])console.dir(a);a();//Hereclosureiscreatedwhichhasfunctionfirst,Herefirstalsohasoneclosureofitselfthatmeansrecursiveclosure当我在Ch

javascript - 如何在 node.js 项目中为 vscode intellisense 在本地使用 .d.ts 类型?

我正在建立一个使用原生插件的node.js项目。native附加组件包含大量导出函数。我已经设置了一个类型文件(.d.ts),其中包含从native附加组件导出的所有函数定义和数据等。当我用npm打包所有这些并将其安装到客户端项目中时,vscodeintellisense会拾取所有类型并且一切正常。当我尝试在与native附加组件相同的项目中为test.js使用类型时,类型没有被拾取,特别是导出的变量;我怀疑这与它们在.d.ts中的导出方式或.d.ts中模块的命名有关。在.d.ts中,我将导出列为;interfaceMyI{Initiate():void;}module'modulen

javascript - ( typescript )属性 'window' 在类型 'Global' 上不存在

我正在使用Mocha/Chai进行单元测试并模拟window如下:global.window={innerHeight:1000,innerWidth:1000};可以理解,TSLint提示:Property'window'doesnotexistontype'Global'几个问题...Global是内置的NodeJS/Typescript类型吗?我目前正在通过文件顶部的declarevarglobal消除警告...但这是处理此问题的最佳方式吗?我注意到我还可以通过以下方式解决警告:declareglobal{namespaceNodeJS{interfaceGlobal{windo